#include "test.h"

int main(int argc, char* argv[]) {
    //测试词法
    const char* filePath = "E:\\CppProject\\compiler_ccv2\\demo5"; // 替换为你要测试的文件路径
    testLexer(filePath);

    //测试语法
//    const char* filePath = "E:\\CppProject\\compiler_ccv2\\demo2";
    testParserFromFile("testing", filePath);

    testSemanticAnalysisFromFile(filePath);
//    // 测试用例 1: 基本表达式
//    testParser("Simple Expression", "1 + 2 * 3;");
//
//    // 测试用例 2: 带括号的表达式
//    testParser("Parenthesized Expression", "(1 + 2) * 3;");
//
//    // 测试用例 3: 空语句
//    testParser("Empty Statement", ";");
//
//    // 测试用例 4: 简单if语句
//    testParser("Simple If Statement",
//               "if (1) {\n"
//               "  2 + 3;\n"
//               "}");
//
//    // 测试用例 5: if-else语句
//    testParser("If-Else Statement",
//               "if (abs) {\n"
//               "  b;\n"
//               "} else {\n"
//               "  c;\n"
//               "}");
//
//    // 测试用例 6: 嵌套语句
//    testParser("Nested Statements",
//               "{\n"
//               "  if (x) {\n"
//               "    y;\n"
//               "  };\n"
//               "  z;\n"
//               "}");
//
//    // 测试用例 7: 复杂表达式
//    testParser("Complex Expression",
//               "1 + 2 * (3 - 4) / 5;");
//
//    // 测试用例 8: 多个语句
//    testParser("Multiple Statements",
//               "a;\n"
//               "b;\n"
//               "c;");
//
//    // 测试用例 9: 混合内容
//    testParser("Mixed Content",
//               "{\n"
//               "  if (test) {\n"
//               "    x = 1 + 2 * 3;\n"
//               "  } else {\n"
//               "    y = (4 - 5) / 6;\n"
//               "  };\n"
//               "  ;\n"  // 空语句
//               "}");
//
//    // 测试用例 10: 错误恢复测试
//    testParser("Error Recovery",
//               "if (1\n"  // 缺少右括号\n"
//               "  2 + 3;");

    return 0;
}